"""
Version: 0.1
Author: CarpeDiem
Date: 2022/3/18
Description: 模拟微信抢红包
"""
# 模拟微信抢红包
# -*- coding: utf-8 -*-
"""
:param money: 红包金额
:param number: 红包个数
思路: 取0-value的一个轴，随机取number-1个点，分成number段，
每一段的值表示一个红包大小
把输入的money值*100拿到的数值就是分，不用再考虑是元的时候，保留两位小数
"""
import random


def red_pocket(money, number):
    # random.sample 要在列表中取值，所以要range一下，
    # range(1, money)是1分，再随机抽取num-1个数
    money *= 100
    ret = random.sample(range(1, money), number - 1)
    ret.sort()  # 对抽取的数列进行排序
    ret.insert(0, 0)  # 在列表中插入0和200，方便计算每个红包大小
    ret.append(money)
    for i in range(len(ret) - 1):
        gap = (ret[i + 1] - ret[i]) / 100  # 计算每一段的差值，并换算成元
        yield gap  # 返回一个生成器，再抽红包之前已经分好了，按照抽的顺序弹出金额


def main():
    money = int(input('请输入要装入红包的总金额(元)：'))
    number = int(input('请输入红包的个数(个)：'))
    red_g = red_pocket(money, number)
    lst = []
    for i in red_g:
        lst.append(i)
    print(lst)


if __name__ == '__main__':
    main()